package com.heatup.apt.model.course;

import com.baomidou.mybatisplus.annotations.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;

/**
 * 课程基本信息：
 * 修改:course_type的类型排序与价格表的服务类型排序保持一致
 */
@TableName("course_info")
public class CourseInfo implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**  */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 标准课程id
     */
    @TableField(value = "course_standard_id")
    private Integer courseStandardId;

    /**
     * 教练数量
     */
    @TableField(value = "coach_count")
    private Integer coachCount;

    /**
     * 适应人群
     */
    private String crowd;

    /**
     * 课程属性(多个属性用,隔开存储)
     */
    @TableField(value = "course_attr")
    private String courseAttr;

    /**
     * 课程介绍
     */
    private String introduce;

    /**
     * 注意事项(多个注意事项用##隔开存储)
     */
    private String announcements;

    /**
     * 参加过的课程人数(每次预约需要更新课程预约股过的数量
     */
    @TableField(value = "past_count")
    private Integer pastCount;

    /**
     * 课程类别(1 团课2 私教3檬营）
     */
    @TableField(value = "course_type")
    private String courseType;

    /**
     * 评价标签(用##隔开存储,管理后台录入)
     */
    @TableField(value = "eval_lable")
    private String evalLable;

    /**
     * 标题图
     */
    @TableField(value = "head_img")
    private String headImg;

    /**
     * 限制人数
     */
    @TableField(value = "max_count")
    private Integer maxCount;

    /**
     * 标题
     */
    private String title;

    /**
     * 教练点评
     */
    @TableField(value = "coach_comment")
    private String coachComment;

    /**
     * 本次预约人数
     */
    @TableField(value = "current_count")
    private Integer currentCount;

    /**
     * 排队人数
     */
    @TableField(value = "wait_count")
    private Integer waitCount;

    /**
     * 状态(1系统录入 2已上线 3已下线 4已删除 5已结束)
     */
    private String status;

    /**
     * 录入人
     */
    @TableField(value = "created_by")
    private Integer createdBy;

    /**
     * 录入时间
     */
    @TableField(value = "created_time")
    private Date createdTime;

    /**
     * 更新人
     */
    @TableField(value = "updated_by")
    private Integer updatedBy;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time")
    private Date updatedTime;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 最小人数(用于趣营)
     */
    @TableField(value = "min_count")
    private Integer minCount;

    public Integer getMealCount() {
        return mealCount;
    }

    public void setMealCount(Integer mealCount) {
        this.mealCount = mealCount;
    }

    /**
     * 私教配参数
     */

    @TableField(value = "meal_count")
    private Integer mealCount;

    /**
     * 总课时
     */
    private Integer periods;

    /**
     * 报名截止时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date deadline;

    /**
     * 起止时间(文字介绍)
     */
    @TableField(value = "start_end_time")
    private String startEndTime;

    /**
     * 0:否。 1:是。
     */
    @TableField(value = "is_vip_used")
    private Integer isVipUsed;

    /**
     * 教练课程签到二维码链接
     */
    @TableField(value = "sign_in_qrcode_url")
    private String signInQrcodeUrl;

    /**
     * 上课操房序号
     */
    @TableField(value = "workout_room_num")
    private Integer workoutRoomNum;

    /**
     * 课程单次购买限制  0限制 1不限
     */
    @TableField(value = "is_buy_one_time_limit")
    private Integer isBuyOneTimeLimit;

    /**
     * 私教 是否限制只能购买1节 0限制 1不限
     */
    @TableField(value = "is_buy_one_class_limit")
    private Integer isBuyOneClassLimit;

    /**
     * 檬营上课时间 数量与上课节数同步
     */
    @TableField(value = "camp_class_time")
    private String campClassTime;
    
    /** 拥有服务年卡的id */
    @TableField(value = "product_service_detail_id")
    private Integer productServiceDetailId;

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getCourseStandardId() {
        return this.courseStandardId;
    }

    public void setCourseStandardId(Integer courseStandardId) {
        this.courseStandardId = courseStandardId;
    }

    public Integer getCoachCount() {
        return this.coachCount;
    }

    public void setCoachCount(Integer coachCount) {
        this.coachCount = coachCount;
    }

    public String getCrowd() {
        return this.crowd;
    }

    public void setCrowd(String crowd) {
        this.crowd = crowd;
    }

    public String getCourseAttr() {
        return this.courseAttr;
    }

    public void setCourseAttr(String courseAttr) {
        this.courseAttr = courseAttr;
    }

    public String getIntroduce() {
        return this.introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

    public String getAnnouncements() {
        return this.announcements;
    }

    public void setAnnouncements(String announcements) {
        this.announcements = announcements;
    }

    public Integer getPastCount() {
        return this.pastCount;
    }

    public void setPastCount(Integer pastCount) {
        this.pastCount = pastCount;
    }

    public String getCourseType() {
        return this.courseType;
    }

    public void setCourseType(String courseType) {
        this.courseType = courseType;
    }

    public String getEvalLable() {
        return this.evalLable;
    }

    public void setEvalLable(String evalLable) {
        this.evalLable = evalLable;
    }

    public String getHeadImg() {
        return this.headImg;
    }

    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }

    public Integer getMaxCount() {
        return this.maxCount;
    }

    public void setMaxCount(Integer maxCount) {
        this.maxCount = maxCount;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCoachComment() {
        return this.coachComment;
    }

    public void setCoachComment(String coachComment) {
        this.coachComment = coachComment;
    }

    public Integer getCurrentCount() {
        return this.currentCount;
    }

    public void setCurrentCount(Integer currentCount) {
        this.currentCount = currentCount;
    }

    public Integer getWaitCount() {
        return this.waitCount;
    }

    public void setWaitCount(Integer waitCount) {
        this.waitCount = waitCount;
    }

    public String getStatus() {
        return this.status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getCreatedBy() {
        return this.createdBy;
    }

    public void setCreatedBy(Integer createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return this.createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Integer getUpdatedBy() {
        return this.updatedBy;
    }

    public void setUpdatedBy(Integer updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedTime() {
        return this.updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Integer getVersion() {
        return this.version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Integer getMinCount() {
        return this.minCount;
    }

    public void setMinCount(Integer minCount) {
        this.minCount = minCount;
    }

    public Integer getPeriods() {
        return this.periods;
    }

    public void setPeriods(Integer periods) {
        this.periods = periods;
    }

    public Date getDeadline() {
        return this.deadline;
    }

    public void setDeadline(Date deadline) {
        this.deadline = deadline;
    }

    public String getStartEndTime() {
        return this.startEndTime;
    }

    public void setStartEndTime(String startEndTime) {
        this.startEndTime = startEndTime;
    }

    public Integer getIsVipUsed() {
        return this.isVipUsed;
    }

    public void setIsVipUsed(Integer isVipUsed) {
        this.isVipUsed = isVipUsed;
    }

    public String getSignInQrcodeUrl() {
        return this.signInQrcodeUrl;
    }

    public void setSignInQrcodeUrl(String signInQrcodeUrl) {
        this.signInQrcodeUrl = signInQrcodeUrl;
    }

    public Integer getWorkoutRoomNum() {
        return this.workoutRoomNum;
    }

    public void setWorkoutRoomNum(Integer workoutRoomNum) {
        this.workoutRoomNum = workoutRoomNum;
    }

    public Integer getIsBuyOneTimeLimit() {
        return this.isBuyOneTimeLimit;
    }

    public void setIsBuyOneTimeLimit(Integer isBuyOneTimeLimit) {
        this.isBuyOneTimeLimit = isBuyOneTimeLimit;
    }

    public Integer getIsBuyOneClassLimit() {
        return this.isBuyOneClassLimit;
    }

    public void setIsBuyOneClassLimit(Integer isBuyOneClassLimit) {
        this.isBuyOneClassLimit = isBuyOneClassLimit;
    }

    public String getCampClassTime() {
        return campClassTime;
    }

    public void setCampClassTime(String campClassTime) {
        this.campClassTime = campClassTime;
    }
    
    public Integer getProductServiceDetailId() {
		return productServiceDetailId;
	}

	public void setProductServiceDetailId(Integer productServiceDetailId) {
		this.productServiceDetailId = productServiceDetailId;
	}

	@Override
    public String toString() {
        return "CourseInfo{" +
                "id=" + id +
                ", courseStandardId=" + courseStandardId +
                ", coachCount=" + coachCount +
                ", crowd='" + crowd + '\'' +
                ", courseAttr='" + courseAttr + '\'' +
                ", introduce='" + introduce + '\'' +
                ", announcements='" + announcements + '\'' +
                ", pastCount=" + pastCount +
                ", courseType='" + courseType + '\'' +
                ", evalLable='" + evalLable + '\'' +
                ", headImg='" + headImg + '\'' +
                ", maxCount=" + maxCount +
                ", title='" + title + '\'' +
                ", coachComment='" + coachComment + '\'' +
                ", currentCount=" + currentCount +
                ", waitCount=" + waitCount +
                ", status='" + status + '\'' +
                ", createdBy=" + createdBy +
                ", createdTime=" + createdTime +
                ", updatedBy=" + updatedBy +
                ", updatedTime=" + updatedTime +
                ", version=" + version +
                ", minCount=" + minCount +
                ", mealCount=" + mealCount +
                ", periods=" + periods +
                ", deadline=" + deadline +
                ", startEndTime='" + startEndTime + '\'' +
                ", isVipUsed=" + isVipUsed +
                ", signInQrcodeUrl='" + signInQrcodeUrl + '\'' +
                ", workoutRoomNum=" + workoutRoomNum +
                ", isBuyOneTimeLimit=" + isBuyOneTimeLimit +
                ", isBuyOneClassLimit=" + isBuyOneClassLimit +
                ", campClassTime='" + campClassTime + '\'' +
                ", productServiceDetailId='" + productServiceDetailId + '\'' +
                '}';
    }
}
